Systems and methods for synchronized display of athletic maneuvers

ABSTRACT

Embodiments of the present disclosure help to synchronize multiple video segments of an actor or actors performing athletic maneuvers. Among other things, various embodiments help provide a side-by-side visual comparison of athletic maneuvers.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation application of U.S. patentapplication Ser. No. 14/024,502, entitled “SYSTEMS AND METHODS FORSYNCHRONIZED DISPLAY OF ATHLETIC MANEUVERS”, filed Sep. 11, 2013, whichclaims priority to U.S. Provisional Patent Application No. 61/774,050,filed Mar. 7, 2013 and entitled “METHOD AND APPARATUS FOR MEASURINGACTION SPORT TRICKS;” and to U.S. Provisional Patent Application No.61/845,877, filed Jul. 12, 2013 and entitled “AUTO VIDEO SYNCHRONIZATIONUSING SENSORS,” the content of which applications is incorporated byreference in its entirety.

BACKGROUND

The popularity of extreme sports (also referred to as “action sports” or“adventure sports”) is steadily growing. In particular, sports such assnowboarding, skateboarding, free skiing, surfboarding, skydiving,wingsuit flying, bicycle motocross (BMX), and others are becoming (orare currently) mainstream sports. Such sports are increasingly beingcovered by various media organizations and some competitions (such asthe X-Games) are devoted solely to extreme sports.

In many traditional sports, competitions are measured and judged usingobjective measures such as scores (e.g., the number of runs in abaseball game or points in a basketball game) or times (e.g., the timefor a runner or downhill skier to cross a finish line). In many extremesports, by contrast, athletes compete by performing various athleticmaneuvers (or “tricks”) such as jumps, flips, rotations, and the like.

Many athletic maneuvers in extreme sports are complex and/or performedvery quickly. Accordingly, athletic maneuvers performed in action sportscompetitions are often evaluated (by judges and spectators) based on avariety of subjective factors, including an individual's personalperception of the difficulty or aesthetics of a particular athleticmaneuver. This often leads to problems in identifying different athleticmaneuvers, as well as judging or rating such maneuvers in competition.In ski jump competitions, for example, the movement of the jumper may beso fast that spectators cannot determine the number of rotations orflips the jumper performs.

Some conventional systems attempt to measure fast rotations withinertial sensors. Such measurements are typically made relative to thesensor axis but can be related to the absolute axis as well. However,such conventional systems do not make sensor measurements understandableto the sport participants and spectators. Conventional systems areunable to automatically recognize and measure action sport “tricks,” andare thus unsuitable for virtual competitions, leaderboards, and socialnetworks dedicated to the action sport participants.

Additionally, for many athletic maneuvers performed in extreme sports,the criteria needed to create and/or automate a virtual competition arenot simple to define. Unlike sports that can be measured simply by ascore, speed, or time, the athletic maneuvers performed in extremesports often involve many complex movements. Some conventional systemsattempt to compare how the same “trick” is performed by two differentactors by comparing video of the two actors performing their respectivemaneuvers. These comparisons, however, often involve a considerableamount of labor-intensive operations, such as manually selecting therelevant parts of each video and then playing them together. Suchside-by side video comparisons are difficult to prepare and often out ofsynch with each other. Among other things, this prevents the widespreaduse of visual comparisons of the same athletic maneuver performed bydifferent actors, or a comparison of a maneuver performed by the sameactor at different times. Embodiments of the present disclosure addressthese and other issues.

SUMMARY OF THE DESCRIPTION

Embodiments of the present disclosure help to synchronize multiple videosegments of an actor or actors performing athletic maneuvers. Amongother things, various embodiments help provide a side-by-side visualcomparison of athletic maneuvers.

A computer-implemented method according to one embodiment of the presentdisclosure comprises receiving, by a computer system, first sensor datarelated to motion by an actor over a first time period and second sensordata related to motion by an actor over a second time period;determining, by the computer system and based on the first sensor dataand the second sensor data, a plurality of motion characteristics;identifying, based on the plurality of motion characteristics, anathletic maneuver associated with both the motion by the actor duringthe first time period and the motion by the actor during the second timeperiod; synchronizing the first sensor data with a visual display of theathletic maneuver performed during the first time period; synchronizingthe second sensor data with a visual display of the athletic maneuverperformed during the first time period; and simultaneously presenting,by the computer system, the visual display of the athletic maneuverperformed during the first time period and the visual display of theathletic maneuver performed during the second time period.

Another embodiment of the present disclosure includes means forreceiving first sensor data related to motion by an actor over a firsttime period and second sensor data related to motion by an actor over asecond time period; determining, based on the first sensor data and thesecond sensor data, a plurality of motion characteristics; identifying,based on the plurality of motion characteristics, an athletic maneuverassociated with both the motion by the actor during the first timeperiod and the motion by the actor during the second time period;synchronizing the first sensor data with a visual display of theathletic maneuver performed during the first time period; synchronizingthe second sensor data with a visual display of the athletic maneuverperformed during the first time period; and simultaneously presentingthe visual display of the athletic maneuver performed during the firsttime period and the visual display of the athletic maneuver performedduring the second time period.

The present disclosure includes methods and apparatuses which performthese methods, including data processing systems which perform thesemethods, and computer readable media containing instructions which whenexecuted on data processing systems cause the systems to perform thesemethods.

Other features will be apparent from the accompanying drawings and fromthe detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of certain embodiments may be derived byreferring to the detailed description and claims when considered inconnection with the following illustrative figures.

FIGS. 1 and 1A are flow diagrams showing exemplary processes accordingto various embodiments.

FIG. 2 is a block diagram of an exemplary system according to variousembodiments.

FIGS. 3, 4, 5, 6A, 6B, and 7 are exemplary graphs according to variousaspects of the present disclosure.

FIG. 8 is a flow diagram showing an exemplary process for synchronizingthe display of athletic maneuvers according to various aspects of thepresent disclosure.

FIG. 9 is an exemplary graph of sensor data that may be utilized inconjunction with the process shown in FIG. 8.

FIGS. 10 and 11 are exemplary screen captures of graphicalrepresentations of a maneuver overlaid onto video of the maneuver.

FIG. 12 illustrates an example of determining a true video frame rate inaccordance with various aspects of the present disclosure.

FIGS. 13A and 13B illustrate aspects of time synchronization between acommon time (e.g., GPS Time) and CPU time, and the typical CPU timeerror compared to a common time.

FIG. 14 shows different phases of an athletic maneuver identified on agyro sensor signature.

DETAILED DESCRIPTION

The following description and drawings are illustrative and are not tobe construed as limiting. Numerous specific details are described toprovide a thorough understanding. However, in certain instances, wellknown or conventional details are not described in order to avoidobscuring the description. References to one or an embodiment in thepresent disclosure are not necessarily references to the sameembodiment; and, such references mean at least one.

Reference in this specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the disclosure. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment, nor are separate or alternative embodimentsmutually exclusive of other embodiments. Moreover, various features aredescribed which may be exhibited by some embodiments and not by others.Similarly, various requirements are described which may be requirementsfor some embodiments but not other embodiments.

Any combination and/or subset of the elements of the methods depictedherein may be practiced in any suitable order and in conjunction withany suitable system, device, and/or process. The methods described anddepicted herein can be implemented in any suitable manner, such asthrough software operating on one or more computer systems. The softwaremay comprise computer-readable instructions stored in a tangiblecomputer-readable medium (such as the memory of a computer system) andcan be executed by one or more processors to perform the methods ofvarious embodiments.

FIG. 1 depicts an exemplary process according to various embodiments ofthe present disclosure. In FIG. 1, method 100 includes receiving sensordata (105) related to motion by an actor over a period of time anddetermining motion characteristics based on the sensor data (110).Method 100 further includes receiving input related to a definition ofan athletic maneuver (115), associating one or more motioncharacteristics with the definition (120), and storing the athleticmaneuver definition and associated motion characteristics in a database(125). Method 100 further includes identifying one or more athleticmaneuvers based on the determined motion characteristics (130),determining a level of similarity between the determined motioncharacteristics and motion characteristics associated with theidentified athletic maneuver(s) (135), and generating an alert (140) inresponse to the similarity level being below a predetermined threshold.Method 100 also includes combining or overlaying information related tothe athletic maneuver with video of the athletic maneuver (145). Thesteps of method 100 may be implemented (in whole or in part, and in anydesired order) by software operating on a computer system, such as theexemplary computer system 200 depicted in FIG. 2.

Embodiments of the present disclosure may receive sensor data (105)directly or indirectly from any number and type of sensors, such as anaccelerometer, a gyroscope, a magnetometer, a Hall effect sensor, aglobal positioning system, an ultrasonic sensor, an optical sensor; andcombinations thereof. Information from different sensors may be usedtogether or separately to determine various motion characteristics forthe actor and/or the actor's equipment. As used in this context, an“actor” performing an athletic maneuver may refer to any human (e.g.,skier, snowboarder, cyclist, diver, athlete, etc.) as well as tosporting equipment associated with, or controlled by, a human. Suchsporting equipment may include, for example, a vehicle (such as abicycle, boat, automobile, motorcycle, etc.), a skateboard, skis, asnowboard, a parachute, and other equipment or devices.

For example, Hall effect sensors may be used to monitor the speed of astunt bicyclist's wheels before, during, and after a jump, while datafrom one set of accelerometers and gyroscopes can monitor flips androtations performed by the bicyclist and a second set of accelerometersand gyroscopes can monitor flips and rotations of the bicycle itself.Other sensors, such as an optical sensor (e.g., a proximity sensor) orglobal positioning system can be used to help determine actor's positionwith regards to the ground, ramp, other actors, and other objects.Various embodiments may utilize data from sensors imbedded in orattached to an actor's clothing, skin, equipment, or surroundings (e.g.,in a ramp used by an actor to perform jumps). The sensor data may bereceived in any suitable manner, such as wirelessly from a datacollection system coupled to an actor and/or an actor's equipment. Thetime interval when a maneuver or “trick” is performed can be determinedby identifying and measuring a jump by monitoring and analyzingcharacteristic signature of the gyro sensors using fuzzy logic asdescribed in U.S. patent application Ser. No. 13/612,470, the contentsof which are incorporated by reference herein. For example, FIG. 7compares a signal from accelerometers and gyro sensors recorded by adevice that was attached to a skateboard during maneuvers performed by askateboarder. To aid in separating the signals, the accelerometer normwas shifted up by 1000 mili-g. FIG. 7 shows that while accelerometersignal is very noisy due to the board vibration, the gyro signal is muchbetter correlated with the trick time period.

Embodiments of the present disclosure can be particularly effective inidentifying and characterizing athletic maneuvers for extreme sportsbased on objective data. Additionally, various embodiments may be usedin conjunction with various other sports and activities, such asbaseball, basketball, hockey, soccer, and football. For example,embodiments of the present disclosure may be configured to receive datafrom sensors coupled to a baseball player's bat, as well as from sensorsattached to the player's uniform and/or embedded in a baseball. In onesuch embodiment, information regarding a player hitting a baseball, suchas the angle of the player's swing, the velocity of the bat, and theforce at which the baseball is hit can be provided to various users,such as spectators of a baseball game or trainers seeking to optimizethe player's swing. As discussed in more detail below, such informationcan be provided in conjunction with video of the player hitting theball, either in near-real-time as the video is broadcast to spectators,as well as part of a replay of the hit. In this manner, embodiments ofthe present disclosure can provide information to enhance a spectator'sexperience (e.g., displaying the force applied to a baseball from a420-foot home run) as well as to help players, trainers, and coachesimprove an athlete's performance based on objective information.

Any number of different motion characteristics may be determined (110).The motion characteristics may include any desired information regardingthe motion of an actor or equipment used by an actor, such as position,velocity, acceleration, orientation, rotation, translation, and changesto and combinations thereof. Embodiments of the present disclosure candetermine multiple motion characteristics during a period of time thatincludes an athletic maneuver performed by an actor. For example, theorientation of a snowboarder executing a complex series of flips androtations during jump can be monitored at various points or times (e.g.,each millisecond) within a time period starting prior to the jump andending after the jump.

Motion characteristics may include any number of different values,descriptions, and other information characterizing the movement (or lackthereof) of an actor and/or the actor's equipment. For example, a motioncharacteristic associated with an athletic maneuver may include one ormore of: an orientation of the actor at a time within the time period(e.g., prior to, during, or after a maneuver), an angle of rotationaround a local axis of the actor, a direction of rotation of the actoraround a local axis of the actor, an angle of rotation around anabsolute axis perpendicular to a plane of motion of the actor, adirection of rotation round an absolute axis perpendicular to a plane ofmotion of the actor, and combinations thereof.

Motion characteristics may be determined in any suitable manner. Forexample, motion characteristics can be determined based on two differentframes of reference: an absolute frame of reference that is independentof the actor and independent of the actor's motion, and a local frame ofreference that is associated with (i.e., connected to, and moves with)the actor. Embodiments of the present disclosure can characterize andmeasure a variety of different athletic maneuvers based on analyzing acombination of motion characteristics measured relative to the absoluteand local frames of reference.

Embodiments of the present disclosure may also utilize informationregarding the placement or location of various sensors in determiningvarious motion characteristics. For example, determining rotation aboutan axis along the actor's body may be based on sensors (e.g.,accelerometers and gyroscopes) being positioned collinearly with eachother, such that sensors along one of the three-dimensional axes (x, y,and z) are the same. Embodiments of the present disclosure may alsoutilize calibration information from the sensors, such as calibration ofvarious sensors performed during manufacturing of the sensors orinstallation of the sensors in an actor's clothing, equipment, etc.Various embodiments of the present disclosure may also be configured tocommunicate with various sensors (or control systems coupled thereto) tocalibrate the sensors. Such calibration may be performed in any suitablemanner. In one embodiment, for example, calibration of one or moreinertial sensors attached to an actor and/or the actor's equipment canbe calibrated when the sensors indicate the actor and/or equipment isnot moving.

While multiple sensors may provide a large amount of information aboutan actor's motion, and the motion itself can be expressed by Eulerangles, pitch, roll, and yaw, or rotational matrix, this information isunderstood by the participants, judges, and spectators only if it isexpressed in the terms and sport-specific nomenclature that is commonlyaccepted in the sport performed by the actor. Embodiments of the presentdisclosure translate sensor observations to identify “tricks” using suchnomenclature. Embodiments of the present disclosure can identify keymotions for each trick, detect and measure all such motions, and thenidentify a trick and its quality or level of difficulty by comparing thedetected motions with the nominal motions required for each trick.

While not exhaustive, the most common characteristics that definedifferent tricks are: the orientation of the actor prior to the trick(forward facing, backward facing, left side facing, right side facing),the leading edge of the trick (e.g., starting from the front or end ofthe user's board), rotation around an absolute axis that is horizontaland perpendicular to the direction of motion during the trick (flipaxis), and rotation around an axis associated with the body of the actor(self rotation axis). In characterizing a trick, a rotation angle aroundany axis does not have to be a full rotation but could be a “back andforth” swing at some particular angle, (e.g., a “Shifty” trick).

In various embodiments, determining the orientation of an actor (or theactor's equipment) at various points during a time period includesdetermining an angle of self-rotation for the actor and determining anangle of flip for the actor. For example, an actor (such as askateboarder) performing a jump may be monitored using three gyroscopesand three accelerometers connected to the actor's equipment, body, orclothing. For this example, it is assumed that all the sensors arepositioned in a device such that their local axes are collinear asdescribed above. The orientation of the actor at time t with respect toa fixed reference frame is determined by a quaternion L(t). Thequaternion change satisfies the following kinematic equation:L_dot=½ω°L,  (Equation 1)

In Equation 1, L_dot is a time derivative of L(t), ω is angular velocityof the body, measured by (for example) the gyroscopic sensors. As aninitial condition, L(0) (i.e., the orientation of the actor before thejump) can be determined. Alternatively, the orientation of the actorimmediately after the jump can be determined, namely L(t_max) wheret_max is a time after the actor lands. The orientation of the actor(including the actor's facing/orientation prior to, or after, amaneuver) can be determined in any desired manner, such as based on adirection of a velocity vector calculated from the sensor data (e.g.,from a GPS sensor) and the orientation of the actor calculated fromother sensor data (e.g., from a magnetometer).

In a practical system, determining L(t_max) may be preferable where alanding shock (i.e., a large acceleration after the jump) in theopposite directed with respect to gravity is measurable. Given theorientation of the actor after the jump, the equation thus becomes:L(t_max)≈[cos φ/2;e sin φ/2];e=(g×a_shock)/(|g×a_shock|); andφ=a cos((g·a_shock)/|g∥a_shock|).

Here, “≈” means that there may be some error associated with the finalquaternion L(t_max), however this approximation may still be sufficientfrom practical point of view where the absolute orientation of thesportsman is not needed for calculation of turns during the jump.

Given the orientation at the end of the jump, L(t_max), the equationsmay be reformulated in classical Cauchy form (ODE with initialconditions), and using the new variable τ:t=tmax−τ.

-   -   Substituting the given expression into Equation 1 obtains:        d/dt L=−d/dτL=½ω(tmax−τ)°L(tmax−τ).    -   Thus orientation of the sportsman can be determined solving the        following Cauchy problem:        (d/dτL ^(˜)(τ)=−½ω^(˜)(τ)°L ^(˜)(τ)        L ^(˜)(0)=L(tmax);        τ∈[0;tmax];        L ^(˜)(τ)        L(tmax−τ); and        ω(τ)        ω^(˜)(tmax−τ))

In this example, a local vertical axis may be determined to (forexample) calculate an angle of self-rotation of the actor during thejump. A local vertical axis may be determined in a variety of differentways, including based on an average of sensor data from one or moreaccelerometers prior to the athletic maneuver, an average of sensor datafrom one or more accelerometers after the athletic maneuver, sensor datafrom one or more accelerometers associated with a portion of theathletic maneuver (such as a landing performed after the maneuver),sensor data from one or more magnetometers (e.g., in conjunction withthe nominal orientation of a magnetic vector relative to the vertical atthe location of the event), and combinations thereof. FIG. 3 depicts anexemplary graph of sensor data measured from three accelerometers thatshows the shock of an impact from an actor landing after a jump. In thisgraph, the horizontal graph axis depicts time in milliseconds and thevertical axis depicts acceleration in m/s^2. The three accelerometerscorrespond to acceleration in the x, y, and z planes.

The angle of self-rotation for the actor may be determined in anysuitable manner, including by calculating a path for each of a pluralityof unit vectors in a local frame of reference that is associated withthe actor, the plurality of unit vectors being orthogonal to a localvertical vector for the actor. The angle of self-rotation for the actormay then be selected as the largest rotation angle among such unitvectors.

Likewise, the angle of flip for the actor may be calculated in anydesired manner, including by determining the motion of a vertical vectorin a global frame of reference that is associated with the actor,identifying a plane of movement for the unit vertical vector,calculating a projection of the vertical vector on the plane, andselecting the angle of flip for the actor as the angle of the arctraveled by such projection on the plane.

FIG. 4 is an exemplary graph depicting self-rotation over time. In thisexample, sensor data from three gyroscopic sensors (corresponding to thex, y, and z planes as in FIG. 3) rotated around a nearly vertical axisin a nearly horizontal plane is plotted over time. In this graph, thevertical axis depicts rotation speed in rad/sec. Using the algorithmsdescribed above, the angle of self-rotation calculated for this data isabout 363 degrees, and the angle of flip is calculated at less than 1degree.

FIG. 5 is an exemplary graph depicting an angle of flip over time. Inthis example, sensor data from a gyroscopic sensor flipped (i.e.,rotated about a nearly horizontal axis) is plotted over time (inmilliseconds). FIG. 6A depicts the trajectory of the vector connectedwith the sensor that coincides with the vertical vector at the end ofthe rotation, while FIG. 6B depicts the projection of the trajectory onthe plane of rotation (nearly round in this example). The resultingangle of flip rotation is about 358 degrees and the angle ofself-rotation is about 38 degrees in this example.

Definitions for any desired athletic maneuvers can be received (115),associated with one or more motion characteristics (120), and stored ina database for future reference and retrieval (125). A definition for anathletic maneuver may apply to any movement or group of movements by anactor, the actor's equipment, or a combination thereof. For example, aback flip combined with a side flip performed by a snowboarder is oftenreferred to as a “wildcat.” A definition for a wildcat maneuver may thusinclude the name (or aliases) of the maneuver, a textual description ofthe maneuver, and the motion characteristic(s) associated with themaneuver. Continuing this example, the motion characteristics associatedwith the wildcat may include indicators of the different axes ofrotation by the actor's body and the rotation angles around these axes.Other information, such as a typical range of forces exerted on theactor's snowboard or parts of the actor's body and a range of time thesnowboarder is airborne may be associated with the definition to helpidentify future wildcat jumps by comparing measured motioncharacteristics to the wildcat jump definition in the database.

The definition for an athletic maneuver may include any number ofcomplex movements by an actor and/or the actor's equipment. For example,sensor data from sensors attached to the actor (such as a skateboarder)can be analyzed in conjunction with sensor data from the actor'sequipment (such as a skateboarder). In this manner, rotations, flips,and other movement by the actor can be analyzed together with rotationsand flips of the skateboard to identify all movements performed by theactor and provide a complete and accurate characterization of themaneuver performed. Embodiments of the present disclosure can thus beparticularly effective in characterizing and identifying maneuvers thatare complex and/or fast, therefore making it challenging for spectatorsand judges to identify all the movements involved.

A definition for an athletic maneuver may include, or be associatedwith, any other desired information. For example, statistics (includingmotion characteristics) for particular athletes who perform a maneuvermay be linked to the definition of the maneuver in a database, allowingusers of the systems and methods of the present disclosure to comparethe manner in which various athletes perform the maneuver. Otherinformation, such as video of the maneuver being performed, may likewisebe included in, or linked to, the definition.

One or more determined motion characteristics can be compared to themotion characteristics associated with a known athletic maneuvers in adatabase to identify the maneuver (130) associated with the determinedmotion characteristics. The motion characteristics determined for anunknown maneuver may be compared to motion characteristics for knownmaneuvers in any suitable manner. For example, characteristicsdescribing an actor's velocity, angle of self-rotation, angle of flip,and change in orientation during a time period can be compared to arelational database storing motion characteristics associated with theknown maneuvers. Known motion characteristics in the database may berepresented in nominal values and/or in ranges, reflecting thatdifferent actors may have different physical characteristics (e.g.,height, weight), may have different equipment, may perform the samemaneuver somewhat differently, and/or may perform a maneuver undervarious other conditions (e.g., with different types of ramps).

The database may also specify the quality of the maneuver that isassociated with different parameter values. For example, a full rotationof 360 degrees during a jump may be valued in 10 points, while a partialrotation of only 350 dg (from jump start to landing) may be valued onlyat 9 points. The quality of a maneuver may be determined according toany desired factors, such as the difficulty of the maneuver.

A level of similarity between a determined set of motion characteristicsand a known nominal set of motion characteristics may be determined(135). The level of similarity may be determined for each of a pluralityof motion characteristics. Alternatively (or in addition), an overalllevel of similarity may be determined for an entire maneuver. Thelevel(s) of similarity may be compared to various threshold values, andan alert generated if one or more similarity levels fail to meet athreshold value. In this manner, embodiments of the present disclosurecan identify new (i.e., undefined) maneuvers and help administrators andusers of the systems and methods described herein to identify errors inthe values or associations of stored motion characteristics and modifythem appropriately.

FIG. 1A depicts an exemplary method for populating a database withinformation regarding various athletic maneuvers. In this example,method 150 includes receiving sensor data (154) from a performed trick(152), and determining motion characteristics (156) and motion sequences(158) based on the received data. The motion characteristics and/ormotion sequences may be averaged over other nominal cases (160) of thesame trick, and a set of trick characteristics stored in the database(162).

Embodiments of the present disclosure may combine or overlay informationidentified and/or measured for an athletic maneuver (145) with anydesired form of media. For example, information regarding an athleticmaneuver can be combined or overlaid onto video taken of the athleticmaneuver, thus providing near-real-time information on a maneuver tospectators or judges. Such an overlay can be synchronized in any desiredmanner, including by using a time measured from a global positioningsystem or other sensor operating in conjunction with embodiments of thepresent disclosure.

In one embodiment, referring now to FIG. 8, two or more visual displaysof an athletic maneuver (e.g., shown via video, computer animation, orcombinations thereof) can be synchronized with sensor data and presentedsimultaneously. The exemplary method 800 may be practiced (in whole orin part) in conjunction with any other desired methods, including themethods shown in FIGS. 1 and 1A. As shown in FIG. 8, method 800 includesreceiving sensor data (805), determining motion characteristics (810),and identifying one or more athletic maneuvers (815). The method furtherincludes synchronizing sensor data with a visual display (820),overlaying information on the visual display (825), and presenting thevisual display (830). Method 800 also includes receiving user input(835), storing data (840), and retrieving stored data (845).

Sensor data can be received (805) from any desired source and for anynumber of different particular athletic maneuvers. Sensor data can bereceived for the same (or different) athletic maneuver performed duringthe same (or different) time period. For example, in one exemplaryembodiment, sensor data related to the motion by an actor over a firsttime period is received along with sensor data related to the motion byan actor over a second time period. The first and second time periodsmay be identical, different, or partially overlap. The maneuverperformed during the first time period may be performed by the same ordifferent actor performing the maneuver during the second time period.Among other things, this allows the same maneuver performed by the sameactor on two different occasions to be compared, as well as allowing amaneuver performed by two different actors to be compared.

Embodiments of the present disclosure may receive sensor data (805)directly or indirectly from any number and type of sensors, includingthose described above in conjunction with the steps of method 100.Likewise, the determination of motion characteristics (810) andidentification of athletic maneuvers (815) may be performed in anydesired manner, including the manners described above for steps 110 and130 of FIG. 1, respectively.

As described above, embodiments of the present disclosure can identify aparticular athletic maneuver based on measurements from one or moresensors, allowing (among other things) the beginning and end (or otherportions) of a maneuver to be determined. For example, FIG. 9illustrates data from a gyro sensor measuring a skateboarder lifting thenose of his board up before performing a “kickflip” maneuver, and thenlanding at the end of the maneuver.

The received sensor data may be synchronized (820) with one or morevisual displays of an athletic maneuver. Visual displays of an athleticmaneuver may include, for example, video and/or computer animation. Inone exemplary embodiment, a visual display of an athletic maneuverperformed during a first time period may include a video of a humanactor performing the maneuver, while a second visual display of themaneuver may include a computer-generated animation of an avatar (i.e.,a computer-generated character) performing the maneuver. These visualdisplays can then be synchronized and presented simultaneously (e.g.,side by side on the same screen or monitor) for a visual comparison. Thesynchronization of sensor data with a visual display of a maneuver maybe based on a time determined from signals from any number of differentsensors, such as a multi-axis gyroscope, a multi-axis accelerometer,and/or a multi-axis magnetic sensor

In one example, a first athlete may perform a particular trick betweensensor time T1s (the start time) and T1e (the end time), while a secondathlete performs the same maneuver at a different time (i.e., T2s−T2e).Both performances are captured on video, the first between T1v_s andT1v_e, and the second between T2v_s and T2v_e. The sensor time countersand video time counters can be synchronized, such that:T1v_sync=f1(T1); andT2v_sync=f2(T2).

Functions f1 and f2 represent synchronization methods between a videotime counter and a sensor time counter for the first and secondathletes, respectively. Here, T1v_sync and T2v_synch are estimates ofthe video frame time counter for an event that was recorded by thesensors at time T1 and T2 in the sensor time frame, respectively. Inother words, T1v_sync is the best estimate of T1_v since both sensorsand video recorded the same real life event. Any suitablesynchronization method may be used in conjunction with embodiments ofthe present disclosure, including the techniques described in U.S.patent application Ser. No. 13/734,818 entitled “AUTOMATIC DIGITALCURATION AND TAGGING OF ACTION VIDEOS.” FIG. 12 shows how the start timeof a video frame can be correlated to a CPU time, and FIG. 13A shows howdifferent CPU times can be synchronized via a common time frame (e.g.GPS time) to synchronize sensor time tags and video time tags as furtherdiscussed in U.S. patent application Ser. No. 13/734,818.

Therefore, synchronization of the start and end times of the videosegments and maneuvers measured by the sensor data is thus:T1v_s=f1(T1s);T1v_e=f1(T1e);T2v_s=f2(T2s); andT2v_e=f2(T2e).

Synchronization of the sensor data and visual displays may be based onany common time reference, such as time measured from a globalpositioning system (GPS), a time frame for a common communication orcomputer network, or any other common time source. A synchronizationcould be done using one common time pair[Tg(r1v),Tv(r1v),Tg(r1s),T(r1s)] or multiple common time points{[Tg(r1v),Tv(r1v),Tg(r1s),Ts(r1s)], [Tg(r2v),Tv(r2v),Tg(r2s),Ts(r2s)] .. . } Here

-   -   Tg—is a measurement in a global time frame    -   Tv—is a measurement in a video time frame    -   Ts—is a measurement in a sensor time frame,    -   rkv and rsv—are indexes for video and sensor measurements

Multiple measurements can be processed with a linear fit between them. Ageneral expression for the synchronization then becomesTv_sync=TV0+G*(T−T0)

Where T is time in the sensor time frame and TV0, T0, and G areconstants derived from a synchronization procedure. Note, that theseconstants could be different for different part of the video recording.In other words, to reduce error, the synchronization procedure could beperformed separately at the different parts of the video if video isrelatively long.

In many applications, sensors (such as accelerometers, gyro,magnetometers, etc.) are often run from the same clock and are thereforeinternally synchronized. However, in a case when different sensors runby from different clocks, embodiments of the present disclosure mayselect as the reference timer the clock for a sensor (or sensors) thatis most useful in determining an athletic trick or maneuver, such as theclock from one or more gyro sensors.

After video and sensory data time frames are synchronized, theappropriate video clips can be shown simultaneously on a split screen ordifferent screens for judges, spectators, or for purposes ofinstruction. Embodiments of the present disclosure can thus assistspectators and judges in understanding, comparing, and judging theperformance of an athletic maneuver by overlaying graphicalrepresentations of the performed maneuver on video of the maneuver.

FIGS. 10 and 11 are exemplary screen captures of a possibleimplementation where graphical representations of a maneuver (in thiscase a “kickflip”) is overlaid on a video. As shown in these examples, agraphical representation may include a depiction of the principle axisof rotation and a simplified representation of the 3D motion of theathlete or his equipment. Other graphics may also be overlaid onto thevideo as well.

In various embodiments, the speed of one or more videos may be increasedor decreased (relative to their nominal speeds) to better present thedifferences and similarities between athletic maneuvers in the differentvideos. Among other things, adjusting the speed of the videos may beperformed in order to make the total time period of an athleticmaneuver, or portions thereof, the same.

Since during different portions of an athletic maneuver, such aslaunching, rotation, and landing, may be identified and measured, suchportions of a maneuver could be isolated, labeled (e.g. via graphicsoverlaid onto video), and the speed at which the portions displayedselectively adjusted to provide a better learning experience or helpingjudging.

As an example, consider a kickflip skateboard maneuver that includes 3major phases—a jump, rotation, and a landing. Embodiments of the presentdisclosure can identify the start and end of each phase based on datareceived from one or more sensors. These phases can be labeled (e.g.,via overlay) on a video showing the maneuver. FIG. 14 depicts exemplarydata from a gyroscope sensor measuring a typical kickflip skateboardingmaneuver. This maneuver starts by pointing the skateboard up and jumping(time 457-548), after which there is a rotation phase (time 549-875),and then landing and stabilization

Suppose now that video of two different skateboarders performing thekickflip in conjunction with measuring the sensor data from each, andthat the jump and landing on both videos take the same time, but therotation phase is longer on one video by dt seconds due to a higher jumpor other reasons. With a common 30 fps video rate, a shorter video canbe extended by duplicating n=round(dt/( 1/30)) different frames from therotation part of the shorter video. This makes the time difference notlarger than 1/60 sec. In this manner, the videos can be playedsimultaneously (e.g., side-by-side on the same display screen) and thedifferent phases of both maneuvers will appear to occur at the sametime, or nearly at the same time. Alternatively, portions of the longervideo may be slowed. A graphics marking or overlay may be added toinform viewers that one video is artificially extended or shortenedduring the rotation phase.

Any desired information may be overlaid onto a visual display of anathletic maneuver (825), and such information may be presented in anydesired manner. For example, a visual annotation (such as a coloredline, highlight, circle, or other indicator) may be presented on one ormore of a plurality of visual displays being simultaneously presented toshow one or more differences between the athletic maneuvers beingperformed in the respective visual displays.

One or more visual displays may be presented using any desired displaymedium and/or format. For example, a visual display of an athleticmaneuver performed during a first time period may be simultaneouslydisplayed next to a visual display of the same athletic maneuverperformed during a second time period (e.g., by the same or differentactor) on a display screen (such as via user interface 216 from system210 in FIG. 2). The visual displays

Embodiments of the present disclosure can receive user input (835) suchas input related to a definition of an athletic maneuver as describedabove, as well as input defining overlay information, or other data.This and other information, such as sensor data, motion characteristics,an visual displays, may be stored in a database (840). Information mayalso be retrieved from the database (845) in response, for example, to arequest from a user. In one exemplary embodiment, a user provides arequest for visual displays of an athletic maneuver that have aparticular characteristic. Such characteristics may include the identityof an actor performing a maneuver, a feature of the maneuver (such asthe visual displays showing the two highest kickflips in the database),a name or type of a maneuver (such back flips or front flips), a date(or range thereof) when the maneuver was performed (e.g., during the2012-2013 season), or any other information related to the maneuver.Multiple visual displays thus retrieved may be simultaneously displayedas described above.

Embodiments of the disclosure may also be configured to automaticallygenerate and transmit reports, statistics, and/or analyses based oninformation related to various athletic maneuvers. These may be providedin real-time or near-real-time to judges, spectators, social mediaoutlets, broadcasting entities, websites, and other systems andentities.

FIG. 2 is a block diagram of system which may be used in conjunctionwith various embodiments. While FIG. 2 illustrates various components ofa computer system, it is not intended to represent any particulararchitecture or manner of interconnecting the components. Other systemsthat have fewer or more components may also be used.

In FIG. 2, the system 200 includes a computer system 210 comprising aprocessor 212, memory 214, and user interface 216. Computer system 210may include any number of different processors, memory components, anduser interface components, and may interact with any other desiredsystems and devices in conjunction with embodiments of the presentdisclosure.

The functionality of the computer system 210, including the methoddepicted in FIG. 1, (in whole or in part), may be implemented throughthe processor 212 executing computer-readable instructions stored in thememory 214 of the system 210. The memory 214 may store anycomputer-readable instructions and data, including softwareapplications, applets, and embedded operating code.

The functionality of the system 210 or other system and devicesoperating in conjunction with embodiments of the present disclosure mayalso be implemented through various hardware components storingmachine-readable instructions, such as application-specific integratedcircuits (ASICs), field-programmable gate arrays (FPGAs) and/or complexprogrammable logic devices (CPLDs). Systems according to aspects ofcertain embodiments may operate in conjunction with any desiredcombination of software and/or hardware components. The processor 212retrieves and executes instructions stored in the memory 214 to controlthe operation of the system 210. Any type of processor, such as anintegrated circuit microprocessor, microcontroller, and/or digitalsignal processor (DSP), can be used in conjunction with embodiments ofthe present disclosure. A memory 214 operating in conjunction withembodiments of the disclosure may include any combination of differentmemory storage devices, such as hard drives, random access memory (RAM),read only memory (ROM), FLASH memory, or any other type of volatileand/or nonvolatile memory. Data (such as athletic maneuver definitionsand associated motion characteristics) can be stored in the memory 214in any desired manner, such as in a relational database.

The system 210 includes a user interface 216 may include any number ofinput devices (not shown) to receive commands, data, and other suitableinput from a user such as input regarding the definitions of athleticmaneuvers. The user interface 216 may also include any number of outputdevices (not shown) to provides the user with data, notifications, andother information. Typical I/O devices may include mice, keyboards,modems, network interfaces, printers, scanners, video cameras and otherdevices.

The system 210 may communicate with one or more sensor devices 220, aswell as other systems and devices in any desired manner, including vianetwork 230. The sensor devices 220 may include, or be coupled to, oneor more control systems (not shown) through which the system 210communicates with, or the system 210 may communicate directly with thesensors 220.

The system 210 may be, include, or operate in conjunction with, a laptopcomputer, a desktop computer, a mobile subscriber communication device,a mobile phone, a personal digital assistant (PDA), a tablet computer,an electronic book or book reader, a digital camera, a video camera, avideo game console, and/or any other suitable computing device.

The network 230 may include any electronic communications system ormethod. Communication among components operating in conjunction withembodiments of the present disclosure may be performed using anysuitable communication method, such as, for example, a telephonenetwork, an extranet, an intranet, the Internet, point of interactiondevice (point of sale device, personal digital assistant (e.g., iPhone®,Palm Pilot®, Blackberry®), cellular phone, kiosk, etc.), onlinecommunications, satellite communications, off-line communications,wireless communications, transponder communications, local area network(LAN), wide area network (WAN), virtual private network (VPN), networkedor linked devices, keyboard, mouse and/or any suitable communication ordata input modality. Systems and devices of the present disclosure mayutilize TCP/IP communications protocols as well as IPX, Appletalk, IP-6,NetBIOS, OSI, any tunneling protocol (e.g. IPsec, SSH), or any number ofexisting or future protocols.

While some embodiments can be implemented in fully functioning computersand computer systems, various embodiments are capable of beingdistributed as a computing product in a variety of forms and are capableof being applied regardless of the particular type of machine orcomputer-readable media used to actually effect the distribution.

A machine readable medium can be used to store software and data whichwhen executed by a data processing system causes the system to performvarious methods. The executable software and data may be stored invarious places including for example ROM, volatile RAM, non-volatilememory and/or cache. Portions of this software and/or data may be storedin any one of these storage devices. Further, the data and instructionscan be obtained from centralized servers or peer to peer networks.Different portions of the data and instructions can be obtained fromdifferent centralized servers and/or peer to peer networks at differenttimes and in different communication sessions or in a same communicationsession. The data and instructions can be obtained in entirety prior tothe execution of the applications. Alternatively, portions of the dataand instructions can be obtained dynamically, just in time, when neededfor execution. Thus, it is not required that the data and instructionsbe on a machine readable medium in entirety at a particular instance oftime.

Examples of computer-readable media include but are not limited torecordable and non-recordable type media such as volatile andnon-volatile memory devices, read only memory (ROM), random accessmemory (RAM), flash memory devices, floppy and other removable disks,magnetic disk storage media, optical storage media (e.g., Compact DiskRead-Only Memory (CD ROMS), Digital Versatile Disks (DVDs), etc.), amongothers. The computer-readable media may store the instructions.

In various embodiments, hardwired circuitry may be used in combinationwith software instructions to implement the techniques. Thus, thetechniques are neither limited to any specific combination of hardwarecircuitry and software nor to any particular source for the instructionsexecuted by the data processing system.

Although some of the drawings illustrate a number of operations in aparticular order, operations which are not order dependent may bereordered and other operations may be combined or broken out. While somereordering or other groupings are specifically mentioned, others will beapparent to those of ordinary skill in the art and so do not present anexhaustive list of alternatives. Moreover, it should be recognized thatthe stages could be implemented in hardware, firmware, software or anycombination thereof.

For the sake of brevity, conventional data networking, applicationdevelopment and other functional aspects of the systems (and componentsof the individual operating components of the systems) may not bedescribed in detail herein. Furthermore, the connecting lines shown inthe various figures contained herein are intended to represent exemplaryfunctional relationships and/or physical couplings between the variouselements. It should be noted that many alternative or additionalfunctional relationships or physical connections may be present in apractical system.

The various system components discussed herein may include one or moreof the following: a host server or other computing systems including aprocessor for processing digital data; a memory coupled to the processorfor storing digital data; an input digitizer coupled to the processorfor inputting digital data; an application program stored in the memoryand accessible by the processor for directing processing of digital databy the processor; a display device coupled to the processor and memoryfor displaying information derived from digital data processed by theprocessor; and a plurality of databases. Various databases used hereinmay include: shipping data, package data, and/or any data useful in theoperation of the system.

Various functionality may be performed via a web browser and/orapplication interfacing utilizing a web browser. Such browserapplications may comprise Internet browsing software installed within acomputing unit or a system to perform various functions. These computingunits or systems may take the form of a computer or set of computers,and any type of computing device or systems may be used, includinglaptops, notebooks, tablets, hand held computers, personal digitalassistants, set-top boxes, workstations, computer-servers, main framecomputers, mini-computers, PC servers, network sets of computers,personal computers and tablet computers, such as iPads, iMACs, andMacBooks, kiosks, terminals, point of sale (POS) devices and/orterminals, televisions, or any other device capable of receiving dataover a network. Various embodiments may utilize Microsoft InternetExplorer, Mozilla Firefox, Google Chrome, Apple Safari, Opera, or anyother of the myriad software packages available for browsing theinternet.

Various embodiments may operate in conjunction with any suitableoperating system (e.g., Windows NT, 95/98/2000/CE/Mobile/, Windows 7/8,OS2, UNIX, Linux, Solaris, MacOS, PalmOS, etc.) as well as variousconventional support software and drivers typically associated withcomputers. Various embodiments may include any suitable personalcomputer, network computer, workstation, personal digital assistant,cellular phone, smart phone, minicomputer, mainframe or the like.Embodiments may implement security protocols, such as Secure SocketsLayer (SSL), Transport Layer Security (TLS), and Secure Shell (SSH).Embodiments may implement any desired application layer protocol,including http, https, ftp, and sftp.

The various system components may be independently, separately orcollectively suitably coupled to a network via data links whichincludes, for example, a connection to an Internet Service Provider(ISP) over the local loop as is typically used in connection withstandard modem communication, cable modem, satellite networks, ISDN,Digital Subscriber Line (DSL), or various wireless communicationmethods. It is noted that embodiments of the present disclosure mayoperate in conjunction with any suitable type of network, such as aninteractive television (ITV) network.

The system may be partially or fully implemented using cloud computing.“Cloud” or “Cloud computing” includes a model for enabling convenient,on-demand network access to a shared pool of configurable computingresources (e.g., networks, servers, storage, applications, and services)that can be rapidly provisioned and released with minimal managementeffort or service provider interaction. Cloud computing may includelocation-independent computing, whereby shared servers provideresources, software, and data to computers and other devices on demand.

Various embodiments may be used in conjunction with web services,utility computing, pervasive and individualized computing, security andidentity solutions, autonomic computing, cloud computing, commoditycomputing, mobility and wireless solutions, open source, biometrics,grid computing and/or mesh computing.

Any databases discussed herein may include relational, hierarchical,graphical, or object-oriented structure and/or any other databaseconfigurations. Moreover, the databases may be organized in any suitablemanner, for example, as data tables or lookup tables. Each record may bea single file, a series of files, a linked series of data fields or anyother data structure. Association of certain data may be accomplishedthrough any desired data association technique such as those known orpracticed in the art. For example, the association may be accomplishedeither manually or automatically.

Any databases, systems, devices, servers or other components of thesystem may be located at a single location or at multiple locations,wherein each database or system includes any of various suitablesecurity features, such as firewalls, access codes, encryption,decryption, compression, decompression, and/or the like.

Encryption may be performed by way of any of the techniques nowavailable in the art or which may become available—e.g., Twofish, RSA,El Gamal, Schorr signature, DSA, PGP, PKI, and symmetric and asymmetriccryptosystems.

Embodiments may connect to the Internet or an intranet using standarddial-up, cable, DSL or any other Internet protocol known in the art.Transactions may pass through a firewall in order to preventunauthorized access from users of other networks.

The computers discussed herein may provide a suitable website or otherInternet-based graphical user interface which is accessible by users.For example, the Microsoft Internet Information Server (IIS), MicrosoftTransaction Server (MTS), and Microsoft SQL Server, may be used inconjunction with the Microsoft operating system, Microsoft NT web serversoftware, a Microsoft SQL Server database system, and a MicrosoftCommerce Server. Additionally, components such as Access or MicrosoftSQL Server, Oracle, Sybase, Informix MySQL, Interbase, etc., may be usedto provide an Active Data Object (ADO) compliant database managementsystem. In another example, an Apache web server can be used inconjunction with a Linux operating system, a MySQL database, and thePerl, PHP, and/or Python programming languages.

Any of the communications, inputs, storage, databases or displaysdiscussed herein may be facilitated through a website having web pages.The term “web page” as it is used herein is not meant to limit the typeof documents and applications that might be used to interact with theuser. For example, a typical website might include, in addition tostandard HTML documents, various forms, Java applets, JavaScript, activeserver pages (ASP), common gateway interface scripts (CGI), extensiblemarkup language (XML), dynamic HTML, cascading style sheets (CSS), AJAX(Asynchronous Javascript And XML), helper applications, plug-ins, andthe like. A server may include a web service that receives a requestfrom a web server, the request including a URL and an IP address. Theweb server retrieves the appropriate web pages and sends the data orapplications for the web pages to the IP address. Web services areapplications that are capable of interacting with other applicationsover a communications means, such as the Internet.

Various embodiments may employ any desired number of methods fordisplaying data within a browser-based document. For example, data maybe represented as standard text or within a fixed list, scrollable list,drop-down list, editable text field, fixed text field, pop-up window,and the like. Likewise, embodiments may utilize any desired number ofmethods for modifying data in a web page such as, for example, free textentry using a keyboard, selection of menu items, check boxes, optionboxes, and the like.

The exemplary systems and methods illustrated herein may be described interms of functional block components, screen shots, optional selectionsand various processing steps. It should be appreciated that suchfunctional blocks may be realized by any number of hardware and/orsoftware components configured to perform the specified functions. Forexample, the system may employ various integrated circuit components,e.g., memory elements, processing elements, logic elements, look-uptables, and the like, which may carry out a variety of functions underthe control of one or more microprocessors or other control devices.Similarly, the software elements of the system may be implemented withany programming or scripting language such as C, C++, C#, Java,JavaScript, VBScript, Macromedia Cold Fusion, COBOL, Microsoft ActiveServer Pages, assembly, PERL, PHP, AWK, Python, Visual Basic, SQL StoredProcedures, PL/SQL, any UNIX shell script, and extensible markuplanguage (XML) with the various algorithms being implemented with anycombination of data structures, objects, processes, routines or otherprogramming elements. Further, it should be noted that the system mayemploy any number of conventional techniques for data transmission,signaling, data processing, network control, and the like. Stillfurther, the system could be used to detect or prevent security issueswith a client-side scripting language, such as JavaScript, VBScript orthe like.

The systems and methods of the present disclosure may be embodied as acustomization of an existing system, an add-on product, a processingapparatus executing upgraded software, a stand alone system, adistributed system, a method, a data processing system, a device fordata processing, and/or a computer program product. Accordingly, anyportion of the system or a module may take the form of a processingapparatus executing code, an internet based embodiment, an entirelyhardware embodiment, or an embodiment combining aspects of the internet,software and hardware. Furthermore, the system may take the form of acomputer program product on a computer-readable storage medium havingcomputer-readable program code means embodied in the storage medium. Anysuitable computer-readable storage medium may be utilized, includinghard disks, CD-ROM, optical storage devices, magnetic storage devices,and/or the like.

The system and method is described herein with reference to screenshots, block diagrams and flowchart illustrations of methods, apparatus(e.g., systems), and computer program products according to variousembodiments. It will be understood that each functional block of theblock diagrams and the flowchart illustrations, and combinations offunctional blocks in the block diagrams and flowchart illustrations,respectively, can be implemented by computer program instructions.

These computer program instructions may be loaded onto a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructionsthat execute on the computer or other programmable data processingapparatus create means for implementing the functions specified in theflowchart block or blocks. These computer program instructions may alsobe stored in a computer-readable memory that can direct a computer orother programmable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function specified in the flowchart block or blocks.The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer-implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions specified in theflowchart block or blocks.

Accordingly, functional blocks of the block diagrams and flowchartillustrations support combinations of means for performing the specifiedfunctions, combinations of steps for performing the specified functions,and program instruction means for performing the specified functions. Itwill also be understood that each functional block of the block diagramsand flowchart illustrations, and combinations of functional blocks inthe block diagrams and flowchart illustrations, can be implemented byeither special purpose hardware-based computer systems which perform thespecified functions or steps, or suitable combinations of specialpurpose hardware and computer instructions. Further, illustrations ofthe process flows and the descriptions thereof may make reference touser windows, webpages, websites, web forms, prompts, etc. Practitionerswill appreciate that the illustrated steps described herein may comprisein any number of configurations including the use of windows, webpages,web forms, popup windows, prompts and the like. It should be furtherappreciated that the multiple steps as illustrated and described may becombined into single webpages and/or windows but have been expanded forthe sake of simplicity. In other cases, steps illustrated and describedas single process steps may be separated into multiple webpages and/orwindows but have been combined for simplicity.

The term “non-transitory” is to be understood to remove only propagatingtransitory signals per se from the claim scope and does not relinquishrights to all standard computer-readable media that are not onlypropagating transitory signals per se. Stated another way, the meaningof the term “non-transitory computer-readable medium” should beconstrued to exclude only those types of transitory computer-readablemedia which were found in In Re Nuijten to fall outside the scope ofpatentable subject matter under 35 U.S.C. § 101.

Benefits, other advantages, and solutions to problems have beendescribed herein with regard to specific embodiments. However, thebenefits, advantages, solutions to problems, and any elements that maycause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as critical, required, or essentialfeatures or elements of the disclosure.

Although the disclosure includes a method, it is contemplated that itmay be embodied as computer program instructions on a tangiblecomputer-readable carrier, such as a magnetic or optical memory or amagnetic or optical disk. All structural, chemical, and functionalequivalents to the elements of the above-described exemplary embodimentsthat are known to those of ordinary skill in the art are expresslyincorporated herein by reference and are intended to be encompassed bythe present claims. Moreover, it is not necessary for a device or methodto address each and every problem sought to be solved by the presentdisclosure, for it to be encompassed by the present claims. Furthermore,no element, component, or method step in the present disclosure isintended to be dedicated to the public regardless of whether theelement, component, or method step is explicitly recited in the claims.No claim element herein is to be construed under the provisions of 35U.S.C. 112, sixth paragraph, unless the element is expressly recitedusing the phrase “means for.” As used herein, the terms “comprises”,“comprising”, or any other variation thereof, are intended to cover anon-exclusive inclusion, such that a process, method, article, orapparatus that comprises a list of elements does not include only thoseelements but may include other elements not expressly listed or inherentto such process, method, article, or apparatus.

Changes and modifications may be made to the disclosed embodimentswithout departing from the scope of the present invention. These andother changes or modifications are intended to be included within thescope of the present disclosure, as expressed in the following claims.

What is claimed is:
 1. A computer-implemented method comprising:receiving, by a computer system, first sensor data related to motion byan actor over a first time period and second sensor data related tomotion by an actor over a second time period; determining, by thecomputer system and based on the first sensor data and the second sensordata, a plurality of motion characteristics; identifying, based on theplurality of motion characteristics, an athletic maneuver associatedwith both the motion by the actor during the first time period and themotion by the actor during the second time period; synchronizing thefirst sensor data with a visual display of the athletic maneuverperformed during the first time period; synchronizing the second sensordata with a visual display of the athletic maneuver performed during thesecond time period; simultaneously presenting, by the computer system,the visual display of the athletic maneuver performed during the firsttime period and the visual display of the athletic maneuver performedduring the second time period; wherein identifying the athletic maneuverincludes comparing the plurality of determined motion characteristics toone or more motion characteristics associated with a known athleticmaneuver; and wherein the one or more motion characteristics associatedwith the known athletic maneuver includes one or more of: an orientationof the actor at a start of the time period; an angle of rotation arounda local axis of the actor; a direction of rotation of the actor around alocal axis of the actor; an angle of rotation around an absolute axisperpendicular to a plane of motion of the actor; a direction of rotationround an absolute axis perpendicular to a plane of motion of the actor;and a leading edge of a piece of sports equipment at a start of the timeperiod.
 2. The method of claim 1, wherein the actor performing theathletic maneuver during the first time period and the actor performingthe athletic maneuver during the second time period are the same actor.3. The method of claim 1, wherein the actor performing the athleticmaneuver during the first time period is a first human actor and theactor performing the athletic maneuver during the second time period isa second human actor.
 4. The method of claim 1, wherein the visualdisplay of the athletic maneuvers performed during the first time periodand the second time period include one or more of video and computeranimation.
 5. The method of claim 4, wherein the visual display of theathletic maneuver performed during the first time period is a video of ahuman actor performing the athletic maneuver, and the visual display ofthe athletic maneuver performed during the second time period is acomputer-generated animation of an avatar performing the athleticmaneuver.
 6. The method of claim 1, wherein synchronizing the firstsensor data with the visual display of the athletic maneuver performedduring the first time period is based on a time measured from one ormore of: a global positioning system, a computer network, and acommunication network.
 7. The method of claim 1, wherein synchronizingthe first sensor data with the visual display of the athletic maneuverperformed during the first time period is based on a time determinedbased on a signal from at least one of a multi-axis gyroscope, amulti-axis accelerometer, and a multi-axis magnetic sensor.
 8. Themethod of claim 1, wherein the plurality of motion characteristicsinclude one or more of: position; velocity; acceleration; orientation;rotation; and translation.
 9. The method of claim 1, wherein identifyingthe athletic maneuver includes determining a level of similarity betweenthe plurality of determined motion characteristics and the motioncharacteristics associated with the known athletic maneuver.
 10. Themethod of claim 1, wherein simultaneously presenting the visual displayof the athletic maneuver performed during the first time period and thevisual display of the athletic maneuver performed during the second timeperiod includes presenting a phase of the athletic maneuver performedduring the first time period at a slower speed than the phase of theathletic maneuver performed during the second time period.
 11. Themethod of claim 1, wherein the phase of the athletic maneuver performedduring the first time period is presented at a speed different from itsnominal speed.
 12. The method of claim 1, further comprising: receiving,via a user interface in communication with the computer system, inputrelated to an athletic maneuver definition; in response to the input,associating the athletic maneuver definition with one or more of theplurality of motion characteristics; and storing, in a database incommunication with the computer system, the athletic maneuver definitionand the one or more associated motion characteristics.
 13. The method ofclaim 12, further comprising storing, in the database, one or more of:the first sensor data; the second sensor data; one or more of theplurality of motion characteristics; the visual display of the athleticmaneuver performed during the first time period; and the visual displayof the athletic maneuver performed during the second time period. 14.The method of claim 13, further comprising: receiving, via the computersystem, a request for visual displays of an athletic maneuver, whereinthe request defines a characteristic of the athletic maneuver;retrieving, from the database, a plurality of visual displays of theathletic maneuver that include the characteristic; and simultaneouslydisplaying, by the computer system, the plurality of retrieved visualdisplays.
 15. The method of claim 1, further comprising overlayinginformation related to the athletic maneuver on one or more of thevisual display of the athletic maneuver performed during the first timeperiod and the athletic maneuver performed during the second timeperiod.
 16. The method of claim 15, wherein the overlaid informationincludes a visual annotation indicating one or more differences betweenthe athletic maneuver performed during the first time period and theathletic maneuver performed during the second time period.
 17. Anon-transitory, computer-readable medium storing instructions that, whenexecuted, cause a computing device to: receive first sensor data relatedto motion by an actor over a first time period and second sensor datarelated to motion by an actor over a second time period; determine,based on the first sensor data and the second sensor data, a pluralityof motion characteristics; identify, based on the plurality of motioncharacteristics, an athletic maneuver associated with both the motion bythe actor during the first time period and the motion by the actorduring the second time period; synchronize the first sensor data with avisual display of the athletic maneuver performed during the first timeperiod; synchronize the second sensor data with a visual display of theathletic maneuver performed during the second time period;simultaneously present the visual display of the athletic maneuverperformed during the first time period and the visual display of theathletic maneuver performed during the second time period; wherein toidentify the athletic maneuver includes comparing the plurality ofdetermined motion characteristics to one or more motion characteristicsassociated with a known athletic maneuver; and wherein the one or moremotion characteristics associated with the known athletic maneuverincludes one or more of: an orientation of the actor at a start of thetime period; an angle of rotation around a local axis of the actor; adirection of rotation of the actor around a local axis of the actor; anangle of rotation around an absolute axis perpendicular to a plane ofmotion of the actor; a direction of rotation round an absolute axisperpendicular to a plane of motion of the actor; and a leading edge of apiece of sports equipment at a start of the time period.
 18. A systemcomprising: at least one processor; and memory in communication with theat least one processor and storing instructions that, when executed bythe processor, cause the system to: receive first sensor data related tomotion by an actor over a first time period and second sensor datarelated to motion by an actor over a second time period; determine,based on the first sensor data and the second sensor data, a pluralityof motion characteristics; identify, based on the plurality of motioncharacteristics, an athletic maneuver associated with both the motion bythe actor during the first time period and the motion by the actorduring the second time period; synchronize the first sensor data with avisual display of the athletic maneuver performed during the first timeperiod; synchronize the second sensor data with a visual display of theathletic maneuver performed during the second time period;simultaneously present the visual display of the athletic maneuverperformed during the first time period and the visual display of theathletic maneuver performed during the second time period; wherein toidentify the athletic maneuver includes comparing the plurality ofdetermined motion characteristics to one or more motion characteristicsassociated with a known athletic maneuver; and wherein the one or moremotion characteristics associated with the known athletic maneuverincludes one or more of: an orientation of the actor at a start of thetime period; an angle of rotation around a local axis of the actor; adirection of rotation of the actor around a local axis of the actor; anangle of rotation around an absolute axis perpendicular to a plane ofmotion of the actor; a direction of rotation round an absolute axisperpendicular to a plane of motion of the actor; and a leading edge of apiece of sports equipment at a start of the time period.